home *** CD-ROM | disk | FTP | other *** search
/ Internet Tools (InfoMagic) / Internet Tools.iso / applic / 4.1TO4.1.1diffs.Z / 4.1TO4.1.1diffs
Text File  |  1989-02-09  |  59KB  |  2,005 lines

  1. The following are the diffs between 4.1 and 4.1.1 of tn3270.
  2.  
  3. First, though, there are three man page files and etc/map3270.
  4. These are delineated by "---" in column 1.
  5.  
  6. --- mset.1
  7. .\" Copyright (c) 1986 The Regents of the University of California.
  8. .\" All rights reserved.
  9. .\"
  10. .\" Redistribution and use in source and binary forms are permitted
  11. .\" provided that the above copyright notice and this paragraph are
  12. .\" duplicated in all such forms and that any documentation,
  13. .\" advertising materials, and other materials related to such
  14. .\" distribution and use acknowledge that the software was developed
  15. .\" by the University of California, Berkeley.  The name of the
  16. .\" University may not be used to endorse or promote products derived
  17. .\" from this software without specific prior written permission.
  18. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  19. .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  20. .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. .\"
  22. .\"    @(#)mset.1    4.2 (Berkeley) 12/21/88
  23. .\"
  24. .TH MSET 1 "December 21, 1988"
  25. .UC 6
  26. .SH NAME
  27. mset \- retrieve ASCII to IBM 3270 keyboard map
  28. .SH SYNOPSIS
  29. .B mset
  30. [-picky] [-shell] [keyboardname]
  31. .SH DESCRIPTION
  32. .I Mset
  33. retrieves mapping information
  34. for the ASCII keyboard to IBM 3270 terminal
  35. special functions.
  36. Normally, these mappings are found
  37. in
  38. .I /etc/map3270
  39. (see
  40. .IR map3270 (5)).
  41. This information is used by the
  42. .I tn3270
  43. command (see
  44. .IR tn3270 (1)).
  45. .PP
  46. The default
  47. .I mset
  48. output can be used to store the mapping information in the process environment
  49. in order to avoid scanning
  50. .I /etc/map3270
  51. each time
  52. .I tn3270
  53. is invoked.
  54. To do this, place the following command in your
  55. .I .login
  56. file:
  57. .ti 5n
  58. .sp
  59.      set noglob; setenv \s-1MAP3270\s0 "\(gamset\(ga"; unset noglob
  60. .PP
  61. If the
  62. .I keyboardname
  63. argument is not supplied,
  64. .I mset
  65. attempts to determine the name of the keyboard the user is using,
  66. by checking the
  67. .B KEYBD
  68. environment variable.
  69. If the
  70. .B KEYBD
  71. environment variable is not set, then
  72. .I mset
  73. uses the user's terminal type from the environment variable
  74. .B TERM
  75. as the keyboard name.
  76. Normally,
  77. .I mset
  78. then uses the file
  79. .I /etc/map3270
  80. to find the keyboard mapping for that terminal.
  81. However, if the environment variable
  82. .B MAP3270
  83. exists and contains the entry for the specified keyboard, then that
  84. definition is used.
  85. If the value of
  86. .B MAP3270
  87. begins with a slash (`/') then it is assumed to be the full pathname
  88. of an alternate mapping file and that file is searched first.
  89. In any case, if the mapping for the keyboard is not found in
  90. the environment, nor in an alternate map file, nor in the standard map file,
  91. then the same search is performed for an entry for a keyboard with the name
  92. .BR unknown .
  93. If that search also fails,
  94. then a default mapping
  95. is used.
  96. .PP
  97. The arguments to
  98. .I mset
  99. are:
  100. .sp
  101. .TP +2
  102. -picky
  103. When processing the various map3270 entries (for the user's keyboard,
  104. and all those encountered before the one for the user's keyboard),
  105. .I mset
  106. normally will not complain about entries for unknown functions (like
  107. \*(lqPFX1\*(rq); the
  108. .I -picky
  109. argument causes
  110. .I mset
  111. to issue warning messages about these unknown entries.
  112. .TP
  113. -shell
  114. If the map3270 entry is longer than the shell's 1024 environmental variable
  115. length limit, the default
  116. .I mset
  117. output cannot be used to store the mapping information in the process
  118. environment to avoid scanning
  119. .I /etc/map3270
  120. each time
  121. .I tn3270
  122. is invoked.
  123. The
  124. .I -shell
  125. argument causes
  126. .I mset
  127. to generate shell commands to set the environmental variables
  128. .BR MAP3270 ,
  129. .BR MAP3270A ,
  130. and so on, breaking up the entry to fit within the shell environmental
  131. variable length limit.
  132. To set these variables, place the following command in your
  133. .I .login
  134. file:
  135. .sp
  136. mset -shell > tmp ; source tmp ; /bin/rm tmp
  137. .TP
  138. keyboardname
  139. When searching for the map3270 entry that matches the user's keyboard,
  140. .I mset
  141. will use
  142. .I keyboardname
  143. instead of determining the keyboard name from the
  144. .B KEYBD
  145. or
  146. .B TERM
  147. environmental variables.
  148. .SH FILES
  149. /etc/map3270        keyboard mapping for known keyboards
  150. .SH SEE ALSO
  151. tn3270(1), map3270(5)
  152. --- tn3270.1
  153. .\" Copyright (c) 1986 The Regents of the University of California.
  154. .\" All rights reserved.
  155. .\"
  156. .\" Redistribution and use in source and binary forms are permitted
  157. .\" provided that the above copyright notice and this paragraph are
  158. .\" duplicated in all such forms and that any documentation,
  159. .\" advertising materials, and other materials related to such
  160. .\" distribution and use acknowledge that the software was developed
  161. .\" by the University of California, Berkeley.  The name of the
  162. .\" University may not be used to endorse or promote products derived
  163. .\" from this software without specific prior written permission.
  164. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  165. .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  166. .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  167. .\"
  168. .\"    @(#)tn3270.1    4.2 (Berkeley) 12/21/88
  169. .\"
  170. .TH TN3270 1 "December 21, 1988"
  171. .UC 6
  172. .SH NAME
  173. tn3270 \- full-screen remote login to IBM VM/CMS
  174. .SH SYNOPSIS
  175. .B tn3270
  176. [-d] [-n filename] [-t commandname] [sysname [port]]
  177. .SH DESCRIPTION
  178. .I Tn3270
  179. permits a full-screen, full-duplex connection
  180. from a \s-UNIX\s0 machine
  181. to an IBM (or compatible) machine.
  182. .I Tn3270
  183. gives the appearance of being logged in
  184. to the remote machine
  185. from an IBM 3270 terminal.
  186. Of course, you must have an account on the machine
  187. to which you connect in order to log in.
  188. .I Tn3270
  189. looks to the user in many respects
  190. like the Yale ASCII Terminal Communication System II.
  191. .I Tn3270
  192. is actually a modification of the Arpanet TELNET user interface (see
  193. .IR telnet (1))
  194. which will, in certain circumstances, interpret and generate
  195. raw 3270 control streams.
  196. .PP
  197. The flags to
  198. .I tn3270
  199. are as follows:
  200. .TP +2
  201. -d
  202. Turn on socket-level tracing (for super-user only)
  203. .TP
  204. -n filename
  205. Specify a file to receive network trace data
  206. output (from commands "toggle netdata" and
  207. "toggle options", see
  208. .IR telnet (1c));
  209. the default is for output
  210. to be directed to the standard error file.
  211. .TP
  212. -t commandname
  213. Specify a \s-UNIX\s0 command to process IBM 4994 style transparent mode
  214. data received from the remote IBM machine.
  215. .TP
  216. sysname
  217. The name of the remote system.  If the remote name
  218. is NOT specified, the user will be prompted for a
  219. command (see below).
  220. .TP
  221. port
  222. The port to connect to on the remote system.
  223. Normally,
  224. .I tn3270
  225. attempts to connect to the
  226. standard TELNET port (port
  227. 23) on the remote machine.
  228. .sp 
  229. .PP
  230. When
  231. .I tn3270
  232. first connects to the remote system, it will negotiate to go into
  233. 3270 mode.
  234. Part of this negotiation involves telling the remote system what model
  235. 3270 it is emulating.
  236. In all cases,
  237. .I tn3270
  238. emulates a 3278 terminal.
  239. To decide which specific model,
  240. .I tn3270
  241. looks at the number of lines and columns on the actual terminal (as
  242. defined in the
  243. .B TERM
  244. environment variable; see
  245. .IR termcap (5)).
  246. The terminal (or window in which tn3270 is running, on multiple
  247. window systems) must have at least 80 columns and 24 lines, or
  248. .I tn3270
  249. will not go into emulation mode.
  250. If the terminal does have at least 80 columns and at least 24 lines,
  251. the following table describes the emulation:
  252. .sp 
  253. .ne 7v
  254. .nf
  255. .ta 0.5i 1.5i
  256.          minimum size             emulated
  257.         (rows*columns)            terminal
  258.         --------------          ------------
  259.             27*132              3278 model 5
  260.             43*80               3278 model 4
  261.             32*80               3278 model 3
  262.             24*80               3278 model 2.
  263. .fi
  264. .sp
  265. .PP
  266. Emulation of the 3270 terminal is done in the \s-UNIX\s0 process.
  267. This emulation involves mapping
  268. 3270-style commands from the host
  269. into appropriate sequences to control the user's terminal screen.
  270. .I Tn3270
  271. uses
  272. .IR curses (3x)
  273. and the
  274. .I /etc/termcap
  275. file to do this.
  276. The emulation also involves simulating the special 3270 keyboard keys
  277. (program function keys, etc.)
  278. by mapping sequences of keystrokes
  279. from the ASCII keyboard into appropriate 3270 control strings.
  280. This mapping is terminal dependent and is specified
  281. in a description file,
  282. .IR /etc/map3270 ,
  283. (see
  284. .IR map3270 (5))
  285. or in an environment variable
  286. .I MAP3270
  287. (and, if necessary,
  288. .IR MAP3270A ,
  289. .IR MAP3270B ,
  290. and so on - see
  291. .IR mset (1)).
  292. Any special function keys on the ASCII keyboard are used whenever possible.
  293. If an entry for the user's terminal
  294. is not found,
  295. .I tn3270
  296. looks for an entry for the terminal type
  297. .B unknown.
  298. If this is not found,
  299. .I tn3270
  300. uses a default keyboard mapping
  301. (see
  302. .IR map3270 (5)).
  303. .PP
  304. The first character of each special keyboard mapping sequence 
  305. is either an ASCII escape (ESC),
  306. a control character, or an ASCII delete (DEL).
  307. If the user types an unrecognized function key sequence,
  308. .I tn3270
  309. sends an ASCII bell (BEL), or a visual bell if
  310. defined in the user's termcap entry, to the user's terminal
  311. and nothing is sent to the IBM host.
  312. .PP
  313. If
  314. .I tn3270 
  315. is invoked without specifying a remote host system name,
  316. it enters local command mode,
  317. indicated by the prompt ``tn3270>''.
  318. In this mode,
  319. .I tn3270
  320. accepts and executes
  321. all the commands of
  322. .IR telnet (1),
  323. plus one additional command:
  324. .TP +2
  325. transcom
  326. Specify \s-UNIX\s0 command for IBM 4994 style transparent mode processing.
  327. .PP
  328. .I Tn3270
  329. command mode may also be entered, after connecting to a host, by typing
  330. a special escape sequence.
  331. If
  332. .I tn3270
  333. has succeeded in negotiating 3270 mode with the remote host, the
  334. escape sequence will be as defined by the map3270 (see
  335. .IR map3270 (5))
  336. entry for the user's terminal type
  337. (typically control-C);
  338. otherwise the escape sequence will initially be set to the
  339. single character '^]'
  340. (control right square bracket).
  341. .PP
  342. While in command mode, any host login session is still alive
  343. but temporarily suspended.
  344. The host login session may be resumed by entering an empty line
  345. (press the RETURN key)
  346. in response to the command prompt.
  347. A session may be terminated by logging off the foreign host,
  348. or by typing ``quit'' or ``close'' while in local command mode.
  349. .SH FILES
  350. /etc/termcap
  351. .br
  352. /etc/map3270
  353. .SH AUTHOR
  354. Greg Minshall
  355. .SH NOTES
  356. .PP
  357. The IBM 4994 style transparent mode command is invoked when
  358. .I tn3270
  359. receives IBM 4994 style transparent output from the remote host.
  360. Output and input pipes are created for communication between the two
  361. processes.
  362. The pipes are closed when a 3270 clear command is received from the remote
  363. hosts, signalling the end of transparent mode output.
  364. Transparent mode is necessary for sending ASCII control characters over the
  365. 3270 terminal connection; ASCII graphics terminal support is accomplished this
  366. way.
  367. Developers of
  368. .I transcom
  369. commands should note that the
  370. .I transcom
  371. stdin pipe end will be in CBREAK mode, with ECHO and CRMOD turned off.
  372. .SH SEE ALSO
  373. mset(1), telnet(1), curses(3x), termcap(3x), termcap(5), map3270(5),
  374. \fIYale ASCII Terminal Communication
  375. System II Program Description/Operator's Manual\fR
  376. (IBM SB30-1911)
  377. .SH BUGS
  378. Tn3270 is slow and uses system resources prodigiously.
  379. .PP
  380. Not all 3270 functions are supported,
  381. nor all Yale enhancements.
  382. .PP
  383. Error conditions (attempting to enter data in a protected field, for
  384. example) should cause a message to be sent to the user's terminal
  385. instead of just ringing a bell.
  386. --- map3270.5
  387. .\" Copyright (c) 1986 The Regents of the University of California.
  388. .\" All rights reserved.
  389. .\"
  390. .\" Redistribution and use in source and binary forms are permitted
  391. .\" provided that the above copyright notice and this paragraph are
  392. .\" duplicated in all such forms and that any documentation,
  393. .\" advertising materials, and other materials related to such
  394. .\" distribution and use acknowledge that the software was developed
  395. .\" by the University of California, Berkeley.  The name of the
  396. .\" University may not be used to endorse or promote products derived
  397. .\" from this software without specific prior written permission.
  398. .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  399. .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  400. .\" WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  401. .\"
  402. .\"    @(#)map3270.5    4.2 (Berkeley) 12/21/88
  403. .\"
  404. .TH MAP3270 5  "December 21, 1988"
  405. .UC 6
  406. .SH NAME
  407. map3270 \- database for mapping ascii keystrokes into IBM 3270 keys
  408. .SH SYNOPSIS
  409. .B /etc/map3270
  410. .SH DESCRIPTION
  411. When emulating IBM-syle 3270 terminals under \s-UNIX\s0 (see \fItn3270\fR(1)),
  412. a mapping must be performed between sequences of keys hit on
  413. a user's (ascii) keyboard, and the keys that are
  414. available on a 3270.  For example, a 3270 has a key labeled
  415. .B EEOF
  416. which erases the contents of the current field from the
  417. location of the cursor to the end.
  418. In order to accomplish this function,
  419. the terminal user and a program emulating a 3270 must
  420. agree on what keys will be typed
  421. to invoke the
  422. .B EEOF
  423. function.
  424. .PP
  425. The requirements for these sequences are:
  426. .nf
  427. .ta 4n 9n
  428. .sp
  429.     1)    that the first character of the sequence be outside of the
  430.         standard ascii printable characters;
  431. .sp
  432.     2)    that no sequence \fIbe\fR an initial part of another (although
  433.         sequences may \fIshare\fR initial parts).
  434. .sp
  435. .fi
  436. .SH FORMAT
  437. The file consists of entries for various keyboards.  The first part
  438. of an entry lists the names of the keyboards which use that entry.
  439. These names will often be the same as in
  440. .I /etc/termcap
  441. (see
  442. .IR termcap (5));
  443. however, note that often the terminals from various termcap entries will all
  444. use the same
  445. .I map3270
  446. entry; for example, both 925 and 925vb (for
  447. 925 with visual bells) would probably use the same
  448. .I map3270
  449. entry.
  450. Additionally, there are occasions when the terminal type defines
  451. a window manager, and it will then be necessary to specify a
  452. keyboard name (via the
  453. .B KEYBD
  454. environment variable) as the name of the entry.
  455. After the names, separated by vertical bars (`|'), comes a left
  456. brace (`{'); the definitions; and, finally, a right brace
  457. (`}').
  458. .PP
  459. Each definition consists of a reserved keyword (see list below) which
  460. identifies the 3270 function (extended as defined below), followed
  461. by an equal sign (`='), followed by the various ways to generate
  462. this particular function, followed by a semi-colon (`;').
  463. Each way is a sequence of strings of
  464. .I printable
  465. ascii characters enclosed inside single quotes (`\(aa');
  466. various ways (alternatives) are separated by vertical bars (`|').
  467. .PP
  468. Inside the single quotes, a few characters are special.
  469. A caret
  470. (`^') specifies that the next character is
  471. the ``control'' character of whatever the character is.
  472. So, `^a'
  473. represents control-a, ie: hexadecimal 1
  474. (note that `^A' would generate the same code). 
  475. To generate
  476. .B rubout
  477. (DEL),
  478. one enters `^?'.
  479. To represent a control character inside a file
  480. requires using the caret to represent a control sequence;
  481. simply typing control-A will not work.
  482. Note: the ctrl-caret sequence
  483. (to generate a hexadecimal 1E)
  484. is represented as `^^' (not `^\e^').
  485. .PP
  486. In addition to the caret, a letter may be preceeded by a backslash (`\e').
  487. Since this has little effect for most characters,
  488. its use is usually not recommended.
  489. For the case of a single quote (`\(aa'), the backslash
  490. prevents that single quote from terminating the string.
  491. For the case of a caret (`^'), the backslash prevents
  492. the caret from having its special meaning.
  493. To have the backslash be part of the string, it is necessary to
  494. place two backslashes ('\e\e') in the file.
  495. .PP
  496. In addition, the following characters are special:
  497. .sp
  498. .nf
  499. .in +0.5i
  500. `\eE'  means an escape character;
  501. `\en'  means newline;
  502. `\et'  means tab;
  503. `\er'  means carriage return.
  504. .in -0.5i
  505. .fi
  506. .sp
  507. It is not necessary for each character in a string
  508. to be enclosed within single quotes.
  509. `\eE\eE\eE' means three escape characters.
  510. .PP
  511. Comments, which may appear anywhere on a line,
  512. begin with a hash mark (`#'), and terminate
  513. at the end of that line.
  514. However, comments cannot begin inside a quoted string;
  515. a hash mark inside a quoted string has no special meaning.
  516. .PP
  517. .SH 3270 KEYS SUPPORTED
  518. The following is the list of 3270 key names that are supported in this file.
  519. Note that some of the keys don't really exist on a 3270.
  520. In particular, the developers of this file have relied
  521. extensively on the work at the Yale University Computer Center with
  522. their 3270 emulator which runs in an IBM Series/1 front end.
  523. The following list corresponds closely to the functions
  524. that the developers of the Yale code offer in their product.
  525. .sp
  526. .B In the following list, the
  527. .B starred ("*")
  528. .B functions are not supported by
  529. .IR tn3270 (1).
  530. An unsupported function will cause
  531. .IR tn3270(1)
  532. to send a (possibly visual) bell sequence to the user's terminal.
  533. .sp
  534. .nf
  535.         3270 Key Name   Functional description
  536.  
  537.      (*)LPRT            local print
  538.         DP              dup character
  539.         FM              field mark character
  540.         CURSEL          cursor select
  541.         CENTSIGN        EBCDIC cent sign
  542.         RESHOW          redisplay the screen
  543.         EINP            erase input
  544.         EEOF            erase end of field
  545.         DELETE          delete character
  546.         INSRT           toggle insert mode
  547.         TAB             field tab
  548.         BTAB            field back tab
  549.         COLTAB          column tab
  550.         COLBAK          column back tab
  551.         INDENT          indent one tab stop
  552.         UNDENT          undent one tab stop
  553.         NL              new line
  554.         HOME            home the cursor
  555.         UP              up cursor
  556.         DOWN            down cursor
  557.         RIGHT           right cursor
  558.         LEFT            left cursor
  559.         SETTAB          set a column tab
  560.         DELTAB          delete a columntab
  561.         SETMRG          set left margin
  562.         SETHOM          set home position
  563.         CLRTAB          clear all column tabs
  564.      (*)APLON           apl on
  565.      (*)APLOFF          apl off
  566.      (*)APLEND          treat input as ascii
  567.      (*)PCON            xon/xoff on
  568.      (*)PCOFF           xon/xoff off
  569.         DISC            disconnect (suspend)
  570.      (*)INIT            new terminal type
  571.      (*)ALTK            alternate keyboard dvorak
  572.         FLINP           flush input
  573.         ERASE           erase last character
  574.         WERASE          erase last word
  575.         FERASE          erase field
  576.         SYNCH           we are in synch with the user
  577.         RESET           reset key-unlock keyboard
  578.         MASTER_RESET    reset, unlock and redisplay
  579.      (*)XOFF            please hold output
  580.      (*)XON             please give me output
  581.         ESCAPE          enter telnet command mode
  582.         WORDTAB         tab to beginning of next word
  583.         WORDBACKTAB     tab to beginning of current/last word
  584.         WORDEND         tab to end of current/next word
  585.         FIELDEND        tab to last non-blank of current/next
  586.                         unprotected (writable) field.
  587.  
  588.         PA1             program attention 1
  589.         PA2             program attention 2
  590.         PA3             program attention 3
  591.  
  592.         CLEAR           local clear of the 3270 screen
  593.         TREQ            test request
  594.         ENTER           enter key
  595.  
  596.         PFK1            program function key 1
  597.         PFK2            program function key 2
  598.         etc.            etc.
  599.         PFK36           program function key 36
  600. .SH A SAMPLE ENTRY
  601. The following entry is used by
  602. tn3270(1) when unable to locate a reasonable version in the
  603. user's environment and in /etc/map3270:
  604. .sp
  605. .nf
  606.         name {          # actual name comes from TERM variable
  607.         clear = '^z';
  608.         flinp = '^x';
  609.         enter = '^m';
  610.         delete = '^d' | '^?';   # note that '^?' is delete (rubout)
  611.         synch = '^r';
  612.         reshow = '^v';
  613.         eeof = '^e';
  614.         tab = '^i';
  615.         btab = '^b';
  616.         nl = '^n';
  617.         left = '^h';
  618.         right = '^l';
  619.         up = '^k';
  620.         down = '^j';
  621.         einp = '^w';
  622.         reset = '^t';
  623.         xoff = '^s';
  624.         xon = '^q';
  625.         escape = '^c';
  626.         ferase = '^u';
  627.         insrt = '\E ';
  628.         # program attention keys
  629.         pa1 = '^p1'; pa2 = '^p2'; pa3 = '^p3';
  630.         # program function keys
  631.         pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  632.         pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  633.         pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
  634.         pfk13 = '\E!'; pfk14 = '\E@'; pfk15 = '\E#'; pfk16 = '\E$';
  635.         pfk17 = '\E%'; pfk18 = '\E'; pfk19 = '\E&'; pfk20 = '\E*';
  636.         pfk21 = '\E('; pfk22 = '\E)'; pfk23 = '\E_'; pfk24 = '\E+';
  637.         }
  638. .fi
  639. .SH "IBM 3270 KEY DEFINITONS FOR AN ABOVE DEFINITION"
  640. The charts below show the proper keys to emulate
  641. each 3270 function when using the default key mapping supplied
  642. with
  643. .IR tn3270 (1)
  644. and
  645. .IR mset (1).
  646. .sp
  647. .nf
  648.      Command Keys             IBM 3270 Key                  Default Key(s)
  649.                               Enter                         RETURN
  650.                               Clear                         control-z
  651.      Cursor Movement Keys
  652.                               New Line                      control-n or
  653.                                                             Home
  654.                               Tab                           control-i
  655.                               Back Tab                      control-b
  656.                               Cursor Left                   control-h
  657.                               Cursor Right                  control-l
  658.                               Cursor Up                     control-k
  659.                               Cursor Down                   control-j or
  660.                                                             LINE FEED
  661.      Edit Control Keys
  662.                               Delete Char                   control-d or
  663.                                                             RUB
  664.                               Erase EOF                     control-e
  665.                               Erase Input                   control-w
  666.                               Insert Mode                   ESC Space
  667.                               End Insert                    ESC Space
  668.      Program Function Keys
  669.                               PF1                           ESC 1
  670.                               PF2                           ESC 2
  671.                               ...                           ...
  672.                               PF10                          ESC 0
  673.                               PF11                          ESC -
  674.                               PF12                          ESC =
  675.                               PF13                          ESC !
  676.                               PF14                          ESC @
  677.                               ...                           ...
  678.                               PF24                          ESC +
  679.      Program Attention Keys
  680.                               PA1                           control-p 1
  681.                               PA2                           control-p 2
  682.                               PA3                           control-p 3
  683.      Local Control Keys
  684.                               Reset After Error             control-r
  685.                               Purge Input Buffer            control-x
  686.                               Keyboard Unlock               control-t
  687.                               Redisplay Screen              control-v
  688.      Other Keys
  689.                               Erase current field           control-u
  690. .fi
  691. .SH FILES
  692. /etc/map3270
  693. .SH SEE ALSO
  694. tn3270(1), mset(1), \fIYale ASCII Terminal Communication
  695. System II Program Description/Operator's Manual\fR
  696. (IBM SB30-1911)
  697. .SH AUTHOR
  698. Greg Minshall
  699. .SH BUGS
  700. .I Tn3270
  701. doesn't yet understand how to process all the functions
  702. available in
  703. .I map3270;
  704. when such a function is requested 
  705. .I tn3270
  706. will beep at you.
  707. .PP
  708. The definition of "word" (for "word erase", "word tab") should be a run-time
  709. option.  Currently it is defined as the kernel tty driver defines it (strings
  710. of non-whitespace); more than one person would rather use the "vi" definition
  711. (strings of specials, strings of alphanumeric).
  712. --- etc/map3270
  713. #
  714. # Copyright (c) 1987 Regents of the University of California.
  715. # All rights reserved.  The Berkeley software License Agreement
  716. # specifies the terms and conditions for redistribution.
  717. #
  718. #    @(#)map3270    1.1 (Berkeley) 11/20/87
  719. #
  720. #
  721. # /etc/map3270 (/usr/new/etc/map3270 before migration)
  722. # mail corrections and additions to "termcap"
  723. #
  724. # this file contains mappings between characters entered from the keyboard,
  725. # and 3270 keys, for use by programs (like tn3270) doing 3270 emulation
  726. # from unix.
  727. #
  728. # inside the single quotes, a caret ("^") introduces a control character
  729. # sequence (rub out = ^?, by the way).  also inside the single quotes,
  730. # a backslash ('\') introduces an escaped character.  Also, \n, \r, \t,
  731. # are all as in c, and \E is another way of representing escape.
  732. #
  733. #    NOTE that while we are defining lots of function, much of that
  734. # function (ie: local editing keys) may not yet be available from
  735. # tn3270.
  736.  
  737.  
  738. 3a | adm3a {
  739.     enter = '^m';
  740.     clear = '^z';
  741.  
  742.     nl = '^n';
  743.     tab = '^i';
  744.     btab = '^b' | '\E^i';
  745.     left = '^h';
  746.     right = '^l';
  747.     up = '^k';
  748.     down = '^j';
  749.     home = '^@';
  750.  
  751.     delete = '^d' | '^?';        # rubout
  752.     eeof = '^e';
  753.     einp = '^w';
  754.     insrt = '\E ';
  755.     dp = '^u';
  756.     fm = '^y';
  757.  
  758.     # pf keys
  759.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  760.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  761.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E:'; pfk12 = '\E-';
  762.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  763.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  764.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  765.  
  766.     # program attention keys
  767.     pa1 = '^p1';
  768.     pa2 = '^p2';
  769.     pa3 = '^p3';
  770.  
  771.     # other keys
  772.     cursel = '\E.';
  773.     centsign = '^\';
  774.  
  775.     # local control keys
  776.  
  777.     reset = '^t';    # well, there is a little confusion here...
  778.     master_reset = '^g';
  779.     flinp = '^x';
  780.     reshow = '^v';    # redisplay screen
  781.     escape = '^c';    # escape to telnet command mode
  782.  
  783.     # local editing keys
  784.     settab = '\E;';
  785.     deltab = '\E\'';
  786.     clrtab = '\E+';
  787.     setmrg = '\E(';
  788.     sethom = '\E!';
  789.     coltab = '\Ei';
  790.     colbak = '\Eb';
  791.     indent = '\El';
  792.     undent = '\Eh';
  793.  
  794. } # end of adm3a
  795.  
  796. 920c | tvi920c | 920b {    # tvi920c definitions...
  797.  
  798.     # command keys
  799.     enter = '^m';
  800.     clear = '^z';
  801.  
  802.     # cursor movement keys
  803.     nl = '^^' | '^n';        # home
  804.     tab = '^i';
  805.     btab = '^b' | '\E^i';
  806.     left = '^h';
  807.     right = '^l';
  808.     up = '^k';
  809.     down = '^j';
  810.     home = '^@';
  811.  
  812.     # edit control keys
  813.     delete = '^?' | '^d';    # delete
  814.     eeof = '^e';
  815.     einp = '^w';
  816.     insrt = '\E ';
  817.     dp = '^u';
  818.     fm = '^y';
  819.  
  820.     # program function keys
  821.  
  822.     # F1 to F11
  823.     pfk1 = '^a@^m'; pfk2 = '^aA^m'; pfk3 = '^aB^m'; pfk4 = '^aC^m';
  824.     pfk5 = '^aD^m'; pfk6 = '^aE^m'; pfk7 = '^aF^m'; pfk8 = '^aG^m';
  825.     pfk9 = '^aH^m'; pfk10 = '^aI^m'; pfk11 = '^aJ^m';
  826.  
  827.     # SHIFT-F11
  828.     pfk12 = '^aj^m';
  829.  
  830.     # ESC F1 to ESC F11
  831.     pfk11 = '\E^a@^m'; pfk12 = '\E^aA^m';
  832.     pfk13 = '\E^aB^m'; pfk14 = '\E^aC^m'; pfk15 = '\E^aD^m'; pfk16 = '\E^aE^m';
  833.     pfk17 = '\E^aF^m'; pfk18 = '\E^aG^m'; pfk19 = '\E^aH^m'; pfk20 = '\E^aI^m';
  834.     pfk21 = '\E^a`^m';
  835.  
  836.     # ESC SHIFT-F1 to ESC SHIFT-F4
  837.     pfk21 = '\E^a`^m'; pfk22 = '\E^aa^m'; pfk23 = '\E^ab^m'; pfk24 = '\E^ac^m';
  838.  
  839.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  840.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  841.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
  842.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  843.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  844.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  845.  
  846.     # program attention keys
  847.  
  848.     pa1 = '^a`^m' | '^p1';
  849.     pa2 = '^aa^m' | '^p2';
  850.     pa3 = '^ab^m' | '^p3';
  851.  
  852.     # miscellaneous 3270 keys
  853.  
  854.     cursel = '\E.';
  855.     centsign = '^\';
  856.  
  857.     # local control keys
  858.  
  859.     reset = '^t';        # there is some confusion here...
  860.     master_reset = '^g';
  861.     flinp = '^x';
  862.     reshow = '^v';
  863.     escape = '^c';    # escape to telnet command mode
  864.  
  865.     # local editing keys
  866.  
  867.     settab = '\E;';
  868.     deltab = '\E\'';
  869.     clrtab = '\E:';
  870.     setmrg = '\E*';
  871.     sethom = '\E!';
  872.     coltab = '\Ei' | '\EI';
  873.     colbak = '\Eb' | '\EB';
  874.     indent = '\El' | '\EL';
  875.     undent = '\Eh' | '\EH';
  876. } # end of tvi920c table...
  877.  
  878. 925 | tvi925 | 925vb | tvi925vb | televideo 925 {
  879.  
  880.     # command keys
  881.  
  882.     enter = '^m';
  883.     clear = '^z';
  884.  
  885.     # cursor movement keys
  886.  
  887.     nl = '^j' | '^n';
  888.     tab = '^i';
  889.     btab = '\EI';
  890.     left = '^h';
  891.     right = '^l';
  892.     up = '^k';
  893.     down = '^v';
  894.     home = '^^';
  895.  
  896.     # edit control keys
  897.  
  898.     delete = '^?';    # that's rubout...
  899.     eeof = '^e';
  900.     einp = '^w';
  901.     insrt = '\E ' | '\EW';
  902.  
  903.     # program function keys
  904.  
  905.     pfk1 = '^a@^m';
  906.     pfk2 = '^aA^m';
  907.     pfk3 = '^aB^m';
  908.     pfk4 = '^aC^m';
  909.     pfk5 = '^aD^m';
  910.     pfk6 = '^aE^m';
  911.     pfk7 = '^aF^m';
  912.     pfk8 = '^aG^m';
  913.     pfk9 = '^aH^m';
  914.     pfk10 = '^aI^m';
  915.     pfk11 = '^aJ^m';
  916.     pfk12 = '\EQ';
  917.     pfk13 = '\E^a@^m';
  918.     pfk14 = '\E^aA^m';
  919.     pfk15 = '\E^aB^m';
  920.     pfk16 = '\E^aC^m';
  921.     pfk17 = '\E^aD^m';
  922.     pfk18 = '\E^aE^m';
  923.     pfk19 = '\E^aF^m';
  924.     pfk20 = '\E^aG^m';
  925.     pfk21 = '\E^aH^m';
  926.     pfk22 = '\E^aI^m';
  927.     pfk23 = '\E^aJ^m';
  928.     pfk24 = '\E\EQ';
  929.  
  930.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  931.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  932.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
  933.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  934.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  935.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  936.  
  937.     # program attention keys
  938.  
  939.     pa1 = '^a`^m';
  940.     pa2 = '^aa^m';
  941.     pa3 = '^ab^m';
  942.  
  943.     # other keys
  944.     centsign = '^\';
  945.  
  946.     # local control keys
  947.  
  948.     reset = '^t';        # again, there is some confusion here...
  949.     master_reset = '^g';
  950.     flinp = '^x';
  951.     reshow = '^b';
  952.     escape = '^c';    # escape to telnet command mode
  953.  
  954. # local editing keys
  955.  
  956.     settab = '\EY';
  957.     deltab = '\Ey';
  958.     clrtab = '\E:';
  959.     setmrg = '\ET';
  960.     sethom = '\Et';
  961.     coltab = '^p';
  962.     colbak = '^o';
  963.     indent = '\ER';
  964.     undent = '\EE';
  965. }
  966.  
  967.  
  968. 924 | tvi924 {
  969.  
  970.     # command keys
  971.  
  972.     enter = '^m';
  973.     clear = '^z';
  974.  
  975.     # cursor movement keys
  976.  
  977.     nl = '^j';
  978.     tab = '^i';
  979.     btab = '\EI';
  980.     left = '^h';
  981.     right = '^l';
  982.     up = '^k';
  983.     down = '^v';
  984.     home = '^^';
  985.  
  986.     # edit control keys
  987.  
  988.     delete = '^?';    # that's rubout...
  989.     eeof = '^e';
  990.     einp = '^w';
  991.     insrt = '\E ' | '\EW';
  992.     dp = '^u';
  993.     fm = '^y';
  994.  
  995.     # program function keys
  996.  
  997.     pfk1 = '^a@^m';
  998.     pfk2 = '^aA^m';
  999.     pfk3 = '^aB^m';
  1000.     pfk4 = '^aC^m';
  1001.     pfk5 = '^aD^m';
  1002.     pfk6 = '^aE^m';
  1003.     pfk7 = '^aF^m';
  1004.     pfk8 = '^aG^m';
  1005.     pfk9 = '^aH^m';
  1006.     pfk10 = '^aI^m';
  1007.     pfk11 = '^aJ^m';
  1008.     pfk12 = '^aK^m';
  1009.     pfk13 = '^aL^m';
  1010.     pfk14 = '^aM^m';
  1011.     pfk15 = '^aN^m';
  1012.     pfk16 = '^aO^m';
  1013.     pfk17 = '^af^m';
  1014.     pfk18 = '^ag^m';
  1015.     pfk19 = '^ah^m';
  1016.     pfk20 = '^ai^m';
  1017.     pfk21 = '^aj^m';
  1018.     pfk22 = '^ak^m';
  1019.     pfk23 = '^al^m';
  1020.     pfk24 = '^am^m';
  1021.  
  1022.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  1023.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  1024.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
  1025.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  1026.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  1027.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  1028.  
  1029.     # program attention keys
  1030.  
  1031.     pa1 = '^a`^m';
  1032.     pa2 = '^aa^m';
  1033.     pa3 = '^ab^m';
  1034.  
  1035.     # other keys
  1036.     centsign = '^\';
  1037.  
  1038.     # local control keys
  1039.  
  1040.     reset = '^t';        # again, there is some confusion here...
  1041.     master_reset = '^g';
  1042.     flinp = '^x';
  1043.     reshow = '^b';
  1044.     escape = '^c';    # escape to telnet command mode
  1045.  
  1046.     # local editing keys
  1047.  
  1048.     settab = '\EY';
  1049.     deltab = '\Ey';
  1050.     clrtab = '\E:';
  1051.     setmrg = '\ET';
  1052.     sethom = '\Et';
  1053.     coltab = '^p';
  1054.     colbak = '^o';
  1055.     indent = '\ER';
  1056.     undent = '\EE';
  1057. }
  1058.  
  1059. h19 | heath | h19b | heathkit | heath-19 | z19 | zenith {
  1060. enter = '^m';
  1061. clear = '^z';
  1062.  
  1063. nl = '^n' | '^?';
  1064. tab = '^i';
  1065. btab = '^b';
  1066. left = '^h';
  1067. right = '^l';
  1068. up = '^k';
  1069. down = '^j';
  1070. home = '^@';
  1071.  
  1072. delete = '^d';
  1073. eeof = '^e';
  1074. einp = '^w';
  1075. insrt = '\E ';
  1076.  
  1077. # pf keys
  1078. pfk1 = '\E?p\E?q'; pfk2 = '\E?p\E?r'; pfk3 = '\E?p\E?s'; pfk4 = '\E?p\E?t';
  1079. pfk5 = '\E?p\E?u'; pfk6 = '\E?p\E?v'; pfk7 = '\E?p\E?w'; pfk8 = '\E?p\E?x';
  1080. pfk9 = '\E?p\E?y'; pfk10 = '\E?q\E?p'; pfk11 = '\E?q\E?q'; pfk12 = '\E?q\E?r';
  1081. pfk13 = '\E?q\E?s'; pfk14 = '\E?q\E?t'; pfk15 = '\E?q\E?u'; pfk16 = '\E?q\E?v';
  1082. pfk17 = '\E?q\E?w'; pfk18 = '\E?q\E?x'; pfk19 = '\E?q\E?y'; pfk20 = '\E?r\E?p';
  1083. pfk21 = '\E?r\E?q'; pfk22 = '\E?r\E?r'; pfk23 = '\E?r\E?s'; pfk24 = '\E?r\E?t';
  1084.  
  1085.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  1086.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  1087.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '\E=';
  1088.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  1089.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  1090.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  1091.  
  1092. # program attention keys
  1093. pa1 = '\EP';
  1094. pa2 = '\EQ';
  1095. pa3 = '\ER';
  1096.  
  1097. # other keys
  1098.  
  1099.     centsign = '^\';
  1100. # cursel = '\E.'; # find out what this does
  1101. master_reset = '^g';
  1102.  
  1103. # local control keys
  1104.  
  1105. reset = '^t';    # well, there is a little confusion here...
  1106. flinp = '^x';
  1107. reshow = '^v';    # redisplay screen
  1108. escape = '^c';    # escape to telnet command mode
  1109.  
  1110. # local editing keys
  1111. settab = '\E;';
  1112. clrtab = '\E:';
  1113. setmrg = '\E\'';
  1114. sethom = '\E!';
  1115. coltab = '\Ei';
  1116. colbak = '\Eb';
  1117. indent = '\El';
  1118. undent = '\Eh';
  1119.  
  1120. } # end of h19
  1121.  
  1122.  
  1123. co | c100 | concept | c100-4p | concept100 {
  1124. enter = '^m';
  1125. clear = '^z' | '^\2';
  1126.  
  1127. nl = '^n';
  1128. tab = '^i';
  1129. btab = '^b';
  1130. left = '^h' | '\E>';
  1131. right = '^l' | '\E=';
  1132. up = '^k' | '\E;';
  1133. down = '^j' | '\E<';
  1134. home = '\E?';
  1135.  
  1136. delete = '^d' | '^?' | '^\1';
  1137. eeof = '^e' | '^\3';
  1138. einp = '^w';
  1139. insrt = '^\0';
  1140.  
  1141. # pf keys
  1142. pfk1 = '\E\E1' | '^\5'; pfk2 = '\E\E2' | '^\6'; pfk3 = '\E\E3' | '^\7';
  1143. pfk4 = '\E\E4' | '^\8'; pfk5 = '\E\E5' | '^\9'; pfk6 = '\E\E6' | '^\:';
  1144. pfk7 = '\E\E7' | '^\;'; pfk8 = '\E\E8' | '^\<'; pfk9 = '\E\E9' | '^\=';
  1145. pfk10 = '\E\E0' | '^\>'; pfk11 = '\E\E-' | '^\?'; pfk12 = '^\@';
  1146. pfk13 = '^\A'; pfk14 = '^\B'; pfk15 = '^\)'; pfk16 = '^\*';
  1147. pfk17 = '^\+'; pfk18 = '^\,'; pfk19 = '^\-'; pfk20 = '^\.';
  1148. pfk21 = '^\/'; pfk22 = '^\C'; pfk23 = '^\D'; pfk24 = '^\E';
  1149.  
  1150.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4';
  1151.     pfk5 = '\E5'; pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8';
  1152.     pfk9 = '\E9'; pfk10 = '\E0'; pfk11 = '\E-'; pfk12 = '^f12';
  1153.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  1154.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  1155.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  1156.  
  1157. # program attention keys
  1158. pa1 = '^\%';
  1159. pa2 = '^\&' | '\E+';
  1160. pa3 = '^\\'';
  1161.  
  1162. # other keys
  1163. cursel = '\E.';
  1164. aplon = '\E{';
  1165. aplend = '\E}';
  1166. aploff = '\E_';
  1167. master_reset = '^g';
  1168. centsign = '\E\\';
  1169.  
  1170. # local control keys
  1171.  
  1172. reset = '^t';    # well, there is a little confusion here...
  1173. flinp = '^x';
  1174. reshow = '^v';    # redisplay screen
  1175. escape = '^c';    # escape to telnet command mode
  1176.  
  1177. # local editing keys
  1178. settab = '\E\E;';
  1179. clrtab = '\E\E:';
  1180. setmrg = '\E\E*';
  1181. sethom = '\E\E!';
  1182. coltab = '\E\Ei';
  1183. colbak = '\E\Eb';
  1184. indent = '\E\El';
  1185. undent = '\E\Eh';
  1186.  
  1187. } # end of concept
  1188. avt | avt-8p-s | avt-4p-s | avt-rv {
  1189. enter = '^m';
  1190. clear = '^z' | '\EOM';
  1191.  
  1192. nl = '^?';
  1193. tab = '^i';
  1194. btab = '^b';
  1195. left = '^h' | '\E[D';
  1196. right = '^l' | '\E[C';
  1197. up = '^k' | '\E[A';
  1198. down = '^j' | '\E[B';
  1199. home = '\EOn';
  1200.  
  1201. delete = '^d';
  1202. eeof = '^e';
  1203. einp = '^w';
  1204. insrt = '^ ' | '\E ';
  1205.  
  1206. # pf keys
  1207. pfk1 = '\EOq' | '\E1'; pfk2 = '\EOr' | '\E2'; pfk3 = '\EOs' | '\E3';
  1208. pfk4 = '\EOt' | '\E4'; pfk5 = '\EOu' | '\E5'; pfk6 = '\EOv' | '\E6';
  1209. pfk7 = '\EOw' | '\E7'; pfk8 = '\EOx' | '\E8'; pfk9 = '\EOy' | '\E9';
  1210. pfk10 = '\EOP\EOp' | '\E0'; pfk11 = '\EOP\EOq' | '\E-';
  1211. pfk12 = '\EOP\EOr' | '\E='; pfk13 = '\EOP\EOs' | '^f13';
  1212. pfk14 = '\EOP\EOt' | '^f14'; pfk15 = '\EOP\EOu' | '^f15';
  1213. pfk16 = '\EOP\EOv' | '^f16'; pfk17 = '\EOP\EOw' | '^f17';
  1214. pfk18 = '\EOP\EOx' | '^f18'; pfk19 = '\EOP\EOy' | '^f19';
  1215. pfk20 = '\EOQ\EOp' | '^f20'; pfk21 = '\EOQ\EOq' | '^f21';
  1216.  
  1217.     pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  1218.  
  1219. # program attention keys
  1220. pa1 = '\E\EOP' | '^p1';
  1221. pa2 = '\E\EOQ' | '^p2';
  1222.  
  1223. # local control keys
  1224.  
  1225. escape = '^c';    # escape to telnet command mode
  1226. master_reset = '^g';
  1227.     centsign = '^\';
  1228.  
  1229. # local editing keys
  1230. settab = '\E;';
  1231. deltab = '\E\'';
  1232. clrtab = '\E:';
  1233. setmrg = '\E,';
  1234. sethom = '\E.';
  1235. coltab = '\E\E[B';
  1236. colbak = '\E\E[A';
  1237. indent = '\E\E[C';
  1238. undent = '\E\E[D';
  1239. }    # end of avt, etc.
  1240.  
  1241. tvipt | vp | televideopt {
  1242.     enter = '^m';
  1243.     clear = '^z';
  1244.  
  1245.  nl = '^n';
  1246.     tab = '^i';
  1247.     btab = '^b';
  1248.     left = '^h';
  1249.     right = '^l';
  1250.     up = '^k';
  1251.     down = '^j';
  1252.     home = '^^';
  1253.  
  1254.     delete = '^?';
  1255.     eeof = '^e';
  1256.     einp = '^w';
  1257.     insrt = '\E ';
  1258.  
  1259.     # pf keys
  1260.     pfk1 = '\E1' | '^A@^m';
  1261.     pfk2 = '\E2' | '^AA^m';
  1262.     pfk3 = '\E3' | '^AB^m';
  1263.     pfk4 = '\E4' | '^AC^m';
  1264.     pfk5 = '\E5' | '^AD^m';
  1265.     pfk6 = '\E6' | '^AE^m';
  1266.     pfk7 = '\E7' | '^AF^m';
  1267.     pfk8 = '\E8';
  1268.     pfk9 = '\E9';
  1269.     pfk10 = '\E0';
  1270.     pfk11 = '\E!' | '\E^A@^m';
  1271.     pfk12 = '\E@' | '\E^AA^m';
  1272.     pfk13 = '\E#' | '\E^AB^m';
  1273.     pfk14 = '\E$' | '\E^AC^m';
  1274.     pfk15 = '\E%' | '\E^AD^m';
  1275.     pfk16 = '\E^AE^m' | '\E\^';
  1276.     pfk17 = '\E&' | '\E^AF^m';
  1277.     pfk18 = '\E*';
  1278.     pfk19 = '\E(';
  1279.     pfk20 = '\E)';
  1280.  
  1281.     # program attention keys
  1282.     pa1 = '^AG^m';
  1283.     pa2 = '^AH^m';
  1284.     pa3 = '^AI^m';
  1285.  
  1286.     # other keys
  1287. #    # cursel = '\E.';
  1288.     centsign = '^\';
  1289.  
  1290.     # local control keys
  1291.  
  1292.     reset = '^t';    # well, there is a little confusion here...
  1293.     master_reset = '^g';
  1294.     flinp = '^x';
  1295.     reshow = '^v';    # redisplay screen
  1296.     escape = '^c';    # escape to telnet command mode
  1297.  
  1298.     # local editing keys
  1299.     settab = '\E;';
  1300.     clrtab = '\E:';
  1301.     setmrg = '\E[';
  1302.     sethom = '\E+';
  1303.     coltab = '\Ei' | '\EI';
  1304.     colbak = '\Eb' | '\EB';
  1305.     indent = '\El' | '\EL';
  1306.     undent = '\Eh' | '\EH';
  1307. } # end of tvipt
  1308. vt100 | vt100nam | pt100 | vt125 | vt102 | direct831 | tek4125 | pcplot |        microvax{
  1309. enter = '^m';
  1310. clear = '^z' | '\EOM';
  1311.  
  1312. nl = '^?';
  1313. tab = '^i';
  1314. btab = '^b';
  1315. left = '^h' | '\EOD';
  1316. right = '^l' | '\EOC';
  1317. up = '^k' | '\EOA';
  1318. down = '^j' | '\EOB';
  1319. home = '\EOn';
  1320.  
  1321. delete = '^d';
  1322. eeof = '^e';
  1323. einp = '^w';
  1324. insrt = '^ ' | '\E ';
  1325.  
  1326. # pf keys
  1327. pfk1 = '\EOq' | '\E1'; pfk2 = '\EOr' | '\E2'; pfk3 = '\EOs' | '\E3';
  1328. pfk4 = '\EOt' | '\E4'; pfk5 = '\EOu' | '\E5'; pfk6 = '\EOv' | '\E6';
  1329. pfk7 = '\EOw' | '\E7'; pfk8 = '\EOx' | '\E8'; pfk9 = '\EOy' | '\E9';
  1330. pfk10 = '\EOP\EOp' | '\E0'; pfk11 = '\EOP\EOq' | '\E-';
  1331. pfk12 = '\EOP\EOr' | '\E='; pfk13 = '\EOP\EOs' | '^f13';
  1332. pfk14 = '\EOP\EOt' | '^f14'; pfk15 = '\EOP\EOu' | '^f15';
  1333. pfk16 = '\EOP\EOv' | '^f16'; pfk17 = '\EOP\EOw' | '^f17';
  1334. pfk18 = '\EOP\EOx' | '^f18'; pfk19 = '\EOP\EOy' | '^f19';
  1335. pfk20 = '\EOQ\EOp' | '^f20'; pfk21 = '\EOQ\EOq' | '^f21';
  1336.  
  1337. # program attention keys
  1338. pa1 = '\E\EOP' | '^p1';
  1339. pa2 = '\E\EOQ' | '^p2';
  1340.  
  1341. # local control keys
  1342.  
  1343. escape = '^c';    # escape to telnet command mode
  1344. master_reset = '^g';
  1345.     centsign = '^\';
  1346.  
  1347. # local editing keys
  1348. settab = '\E;';
  1349. deltab = '\E\'';
  1350. clrtab = '\E:';
  1351. setmrg = '\E,';
  1352. sethom = '\E.';
  1353. coltab = '\E\E[B';
  1354. colbak = '\E\E[A';
  1355. indent = '\E\E[C';
  1356. undent = '\E\E[D';
  1357. }    # end of vt100, etc.
  1358.  
  1359. sun  {
  1360.     enter = '^m';
  1361.     clear = '^z' | '\E[222z';
  1362.  
  1363.     nl = '^j';
  1364.     tab = '^i';
  1365.     btab = '^b' | '\E[195z' | '\E[216z';
  1366.     left = '^h' | '\E[D' | '\EOD';
  1367.     right = '^l' | '\E[C' | '\EOC';
  1368.     up = '^k' | '\E[A' | '\EOA';
  1369.     down = '\E[B' | '\EOB';
  1370.     home = '\E[218z';
  1371.  
  1372.     delete = '^d' | '^?';
  1373.     eeof = '^e' | '\E[214z';
  1374.     einp = '^w' | '\E[213z';
  1375.     insrt = '\E ' | '\E[220z';
  1376.     dp = '^u';
  1377.     fm = '^y';
  1378.  
  1379.     # pf keys
  1380.     pfk1 = '\E[224z' | '\E1'; pfk2 = '\E[225z' | '\E2';
  1381.     pfk3 = '\E[226z' | '\E3'; pfk4 = '\E[227z' | '\E4';
  1382.     pfk5 = '\E[228z' | '\E5'; pfk6 = '\E[229z' | '\E6';
  1383.     pfk7 = '\E[230z' | '\E7'; pfk8 = '\E[231z' | '\E8';
  1384.     pfk9 = '\E[232z' | '\E9'; pfk10 = '\E[208z' | '\E0';
  1385.     pfk11 = '\E[209z' | '\E-'; pfk12 = '\E[210z' | '\E=';
  1386.     pfk13 = '^f13'; pfk14 = '^f14'; pfk15 = '^f15'; pfk16 = '^f16';
  1387.     pfk17 = '^f17'; pfk18 = '^f18'; pfk19 = '^f19'; pfk20 = '^f20';
  1388.     pfk21 = '^f21'; pfk22 = '^f22'; pfk23 = '^f23'; pfk24 = '^f24';
  1389.  
  1390.     # program attention keys
  1391.     pa1 = '^p1' | '\E[211z';
  1392.     pa2 = '^p2' | '\E[212z';
  1393.     pa3 = '^p3';
  1394.  
  1395.     # other keys
  1396.     cursel = '\E.';
  1397.     centsign = '^\';
  1398.  
  1399.     # local control keys
  1400.  
  1401.     reset = '^t';    # well, there is a little confusion here...
  1402.     master_reset = '^g';
  1403.     flinp = '^x';
  1404.     reshow = '^v';    # redisplay screen
  1405.     escape = '^c';    # escape to telnet command mode
  1406.  
  1407.     # local editing keys
  1408.     settab = '\E;';
  1409.     clrtab = '\E+';
  1410.     setmrg = '\E(';
  1411.     sethom = '\E!';
  1412.     coltab = '\Ei';
  1413.     colbak = '\Eb';
  1414.     indent = '\El';
  1415.     undent = '\Eh';
  1416. } # end of sun
  1417. #
  1418. # Works with /usr/ucb/tn3270 except tn3270pc which requires /usr/new/tn3270.
  1419. #
  1420. msk22714 | mskermit22714 | msk227 | mskermit227 {
  1421. #
  1422. # 9-5-86 gts
  1423. # MS-Kermit UCB 227.14 to Unix then tn3270 to CMS.
  1424. # Includes underlying ADM3A keystrokes for full S/1 compatibiliy.
  1425. # Attempts to work for both "do unix" and "do cms" keyboards.  Differences are
  1426. # marked with (C) for CMS only or (U) for Unix only.  Incidental effects are
  1427. # enclosed in square brackets [].
  1428. # New functions WERASE Ctrl-\  and FERASE Ctrl-_.
  1429.  
  1430.     enter = '^m';                    # <--'
  1431.     clear = '^z';                    # keypad + (C)
  1432.  
  1433.     nl    = '^n';                    # keypad End (C)
  1434.     tab   = '^i';                    # --->|
  1435.     btab  = '^b'  | '\E^I';                # |<--- (C|U)
  1436.     left  = '^h';                    # keypad Left
  1437.     right = '^l';                    # keypad Right
  1438.     up    = '^k';                    # keypad Up
  1439.     down  = '^j'  | '\EB';                # keypad Down (U|C)
  1440.                             # [ keypad End (U) ]
  1441.     home  = '^^'  | '^@';                # keypad Home (U|C)
  1442.     dp    = '^u'  | '^a';                # [ keypad PgUp (U) ]
  1443.     fm    = '^y';
  1444.  
  1445.     delete = '^d' | '^?';                # keypad Del
  1446.                             # [ keypad PgDn (U) ]
  1447.     eeof   = '^e';
  1448.     einp   = '^w';                    # keypad - (C)
  1449.     insrt  = '\E ' | '\Ei';                # keypad Ins (C|U)
  1450.  
  1451.     # pf keys IBM PC/XT/AT and ADM3A Esc d
  1452.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5';
  1453.     pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0';
  1454.     # pf keys IBM PC/XT/AT Shift and ADM3A Ctrl-F nn
  1455.     pfk11='^f11'; pfk12='^f12'; pfk13='^f13'; pfk14='^f14'; pfk15='^f15';
  1456.     pfk16='^f16'; pfk17='^f17'; pfk18='^f18'; pfk19='^f19'; pfk20='^f20';
  1457.     # pf keys IBM PC/XT/AT Ctrl- and ADM3A Ctrl-F nn
  1458.     pfk21='^f21'; pfk22='^f22'; pfk23='^f23'; pfk24='^f24'; pfk25='^f25';
  1459.     pfk26='^f26'; pfk27='^f27'; pfk28='^f28'; pfk29='^f29'; pfk30='^f30';
  1460.     # pf keys IBM PC/XT/AT Ctrl-Shift- and ADM3A Ctrl-F nn
  1461.     pfk31='^f31'; pfk32='^f32'; pfk33='^f33'; pfk34='^f34'; pfk35='^f35';
  1462.     pfk36='^f36';
  1463.     # pf keys IBM PC/XT/AT Alt-1 to Alt-= (generated as, Esc d, ^F 11, ^F 12)
  1464.     # pf keys ADM3A Esc d           (d = 1 to 0 interpreted as above)
  1465.     pfk11 = '\E-'; pfk12 = '\E=';
  1466.  
  1467.     # program attention keys (same as ADM3A)
  1468.     pa1 = '^p1';                    # Alt-F1
  1469.     pa2 = '^p2';                    # Alt-F2
  1470.     pa3 = '^p3';                    # Alt-F3
  1471.    #pa4 = '^p4';                    # Alt-F3
  1472.    #testreq = '^pr' | '^pR';                # Alt-F5
  1473.  
  1474.     # other keys
  1475.     cursel = '\E.';
  1476.     werase = '^\';
  1477.     ferase = '^_';
  1478.  
  1479.     # local control keys
  1480.     master_reset = '^g';
  1481.     reset  = '^r'  | '^t';
  1482.     flinp  = '^x';
  1483.     reshow = '^v';
  1484.     escape = '^c';                    # escape to telnet
  1485.  
  1486.     # local editing keys
  1487.     settab = '\E;';
  1488.     deltab = '\E\'';
  1489.     clrtab = '\E:' | '\E+';
  1490.     setmrg = '\E(';
  1491.     sethom = '\E!';
  1492.     coltab = '\EI';
  1493.    #coltab = '\Ei' | '\EI';                # cannot use Esc i
  1494.     colbak = '\Eb';                    # on S/1 \EB is down
  1495.    #colbak = '\Eb' | '\EB';                # cannot use Esc B
  1496.     indent = '\El' | '\EL';
  1497.     undent = '\Eh' | '\EH';                # on S/1 \EH is Home
  1498.  
  1499. } # end of msk22714
  1500. #
  1501. ansisys | ansisysk | nansisys | nansisysk {
  1502. #
  1503. # 9-5-86 gts
  1504. # IBM PC/XT/AT using the ansi.sys | ansi.sysk | nansi.sys | nansi.sysk termcaps.
  1505. #
  1506. # PROBLEM: cannot use periods in termcap name until mset fixed (gts 9-5-86).
  1507. #
  1508. # PROBLEM: cannot use eval `mset ...` until Unix csh changed to allow more
  1509. # than 1024 characters in an environment string or until mset changed to
  1510. # return only the filename if the resulting string is longer than 1024.
  1511. #
  1512. # PROBLEM when NUL (^@) immediately follows a Return:  Unix telent apparently
  1513. # ignores the NUL!  (Can tn3270 negotiate a different newline?)
  1514. #
  1515. # Nearly identical to the map3270 for the IBM PC TN3270, which itself is nearly
  1516. # identical to the MS-Kermit UCB 227.14 keyboard which in turn was a  modest
  1517. # improvement of the BIJOU Yterm keyboard.  See HELP TN3270PC on CMS.
  1518. # Includes the underlying ADM3A keystrokes for full S/1 compatibility.
  1519. # Adds some Ctrl-keypad keys to compensate for TN3270 ROMBIOS dependency
  1520. # which prevents separate use of the keypad plus and minus keys.
  1521. # Adds new functions WERASE and FERASE.
  1522. #
  1523.  
  1524.     enter = '^m';                    # <--'
  1525.     clear = '^z' | '^@w';                # Ctrl-Home
  1526.  
  1527.     nl    = '^n'  | '^@O';                # keypad End
  1528.     tab   = '^i';                    # --->|
  1529.     btab  = '^b'  | '^@^O';                # |<---
  1530.     left  = '^h'  | '^@K';                # keypad Left
  1531.     right = '^l'  | '^@M';                # keypad Right
  1532.     up    = '^k'  | '^@H';                # keypad Up
  1533.     down  = '^j'  | '^@P';                # keypad Down
  1534.     home  = '^^'  | '^@G';                # keypad Home
  1535.                             # (cannot use Ctrl-@)
  1536.     dp    = '^u';
  1537.     fm    = '^y';
  1538.  
  1539.     delete = '^d'  | '^?'  | '^@S';            # keypad Del
  1540.     eeof   = '^e'  | '^@u';                # keypad Ctrl-End
  1541.     einp   = '^w';
  1542.     insrt  = '\E ' | '^@R' | '\E\Ei';            # keypad Ins
  1543.  
  1544.     # pf keys IBM PC/XT/AT
  1545.     pfk1 = '^@;'; pfk2 = '^@<'; pfk3 = '^@='; pfk4 = '^@>'; pfk5 = '^@?';
  1546.     pfk6 = '^@@'; pfk7 = '^@A'; pfk8 = '^@B'; pfk9 = '^@C'; pfk10= '^@D';
  1547.     # pf keys IBM PC/XT/AT Shift
  1548.     pfk11 = '^@T'; pfk12 = '^@U'; pfk13 = '^@V'; pfk14 = '^@W';  pfk15 = '^@X';
  1549.     pfk16 = '^@Y'; pfk17 = '^@Z'; pfk18 = '^@['; pfk19 = '^@\\'; pfk20 = '^@]';
  1550.     # pf keys IBM PC/XT/AT Ctrl-
  1551.     pfk21 = '^@\^';pfk22 = '^@_'; pfk23 = '^@`'; pfk24 = '^@a';  pfk25 = '^@b';
  1552.     pfk26 = '^@c'; pfk27 = '^@d'; pfk28 = '^@e'; pfk29 = '^@\f'; pfk30 = '^@g';
  1553.     # pf keys IBM PC/XT/AT Ctrl-Shift-   (cannot be done yet with  PC tn3270)
  1554.     # pf keys IBM PC/XT/AT Alt-d
  1555.     pfk1 = '^@x'; pfk2 = '^@y'; pfk3 = '^@z'; pfk4 = '^@{'; pfk5 = '^@|';
  1556.     pfk6 = '^@}'; pfk7 = '^@~'; pfk8 = '^@^?';pfk9 = '^@^@';pfk10= '^@^A';
  1557.     pfk11='^@^B'; pfk12= '^@^C';
  1558.  
  1559.     # pf keys ADM3A Esc d
  1560.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5';
  1561.     pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0';
  1562.     pfk11 = '\E-'; pfk12 = '\E=';
  1563.     # pf keys ADM3A Ctrl-F n n
  1564.     pfk1 = '^f01'; pfk2 = '^f02'; pfk3 = '^f03'; pfk4 = '^f04'; pfk5= '^f05';
  1565.     pfk6 = '^f06'; pfk7 = '^f07'; pfk8 = '^f08'; pfk9 = '^f09'; pfk10= '^f10';
  1566.     pfk11= '^f11'; pfk12= '^f12'; pfk13= '^f13'; pfk14= '^f14'; pfk15= '^f15';
  1567.     pfk16= '^f16'; pfk17= '^f17'; pfk18= '^f18'; pfk19= '^f19'; pfk20= '^f20';
  1568.     pfk21= '^f21'; pfk22= '^f22'; pfk23= '^f23'; pfk24= '^f24'; pfk25= '^f25';
  1569.     pfk26= '^f26'; pfk27= '^f27'; pfk28= '^f28'; pfk29= '^f29'; pfk30= '^f30';
  1570.     pfk31= '^f31'; pfk32= '^f32'; pfk33= '^f33'; pfk34= '^f34'; pfk35= '^f35';
  1571.     pfk36= '^f36';
  1572.  
  1573.     # program attention keys
  1574.     pa1 = '^p1' | '^@h';                # Alt-F1
  1575.     pa2 = '^p2' | '^@i';                # Alt-F2
  1576.     pa3 = '^p3' | '^@j';                # Alt-F3
  1577.    #pa4 = '^p4' | '^@k';                # Alt-F4
  1578.    #testreq = '^pr' | '^pR' | '^@l'            # Alt-F5
  1579.  
  1580.     # other keys
  1581.     cursel = '\E.';
  1582.     werase = '^\';
  1583.     ferase = '^_';
  1584.     pfk7 = '^@I'    | '\E^U';                # keypad PgUp
  1585.     pfk8 = '^@Q'    | '\E^D';                # keypad PgDn
  1586.  
  1587.     # local control keys
  1588.     reset  = '^r' | '^t';
  1589.     master_reset = '^g';
  1590.     flinp  = '^x';
  1591.     reshow = '^v';
  1592.     escape = '^c';        # escape to TN3270 command prompt
  1593.  
  1594.     # local editing keys
  1595.     settab = '\E;';
  1596.     deltab = '\E\'';
  1597.     clrtab = '\E:' | '\E+';
  1598.     setmrg = '\E(';
  1599.     sethom = '\E!';
  1600.     coltab = '\Ei' | '\EI';
  1601.     colbak = '\Eb' | '\EB';        # on S/1 \EB is down
  1602.     indent = '\El' | '\EL';
  1603.     undent = '\Eh' | '\EH';        # on S/1 \EH is Home
  1604.  
  1605. } # end of ansi.sys
  1606. #
  1607. tn3270pc | ibm-3278-2 {
  1608. #
  1609. # 2-14-87 gts
  1610. #
  1611. # MAP3270 for the IBM PC logged into Unix with PC TN3270 with TERM=nansisys,
  1612. # nansisysk, ansisys or ansisysk, hence requires KETBD=tn3270pc.
  1613. #
  1614. # MAP3270 for the IBM PC
  1615. # Nearly identical to the MS-Kermit UCB 227.14 keyboard which in turn was
  1616. # an modest improvement of the BIJOU Yterm keyboard.
  1617. # Includes underlying ADM3A keystrokes for full S/1 compatibiliy.
  1618. # Adds some Ctrl-keypad keys to compensate for TN3270 ROMBIOS dependency
  1619. # which prevents separate use of the keypad plus and minus keys, and adds
  1620. # new functions WERASE, FERASE, WORDTAB, WORDBACKTAB, WORDEND and FIELDEND.
  1621. # Where possible these extensions are compatible with IBM PC keystroke usage
  1622. # (see XT technical reference manual Keyboard Usage Guidelines).
  1623. # Includes F11 and F12 keys from the new IBM PC/XT/AT keyboard.
  1624. #
  1625.  
  1626.     centsign = '\Ec' | '\EC';                # CentSign for input
  1627.     enter = '^m';                    # <--'
  1628.     clear = '^z' | '^Aw';                # Ctrl-Home
  1629.  
  1630.     nl    = '^n'  | '^AO';                # keypad End
  1631.     tab   = '^i';                    # --->|
  1632.     btab  = '^b'  | '\E^I' | '^A^O';            # |<---
  1633.     left  = '^h'  | '^AK';                # keypad Left
  1634.     right = '^l'  | '^AM';                # keypad Right
  1635.     up    = '^k'  | '^AH';                # keypad Up
  1636.     down  = '^j'  | '^AP';                # keypad Down
  1637.     home  = '^^'  | '^AG'  | '^@';            # keypad Home
  1638.     dp    = '^u';
  1639.     fm    = '^y';
  1640.  
  1641.     delete = '^d' | '^AS';                # keypad Del
  1642.     eeof = '^e'  | '^Au';                # keypad End
  1643.     einp = '^w';
  1644.     insrt = '\E ' | '^AR';                # keypad Ins
  1645.  
  1646.     # pf keys IBM PC/XT/AT
  1647.     pfk1 = '^A;'; pfk2 = '^A<'; pfk3 = '^A='; pfk4 = '^A>'; pfk5 = '^A?';
  1648.     pfk6 = '^A@'; pfk7 = '^AA'; pfk8 = '^AB'; pfk9 = '^AC'; pfk10= '^AD';
  1649.     # pf keys IBM PC/XT/AT Shift
  1650.     pfk11 = '^AT'; pfk12 = '^AU'; pfk13 = '^AV'; pfk14 = '^AW';  pfk15 = '^AX';
  1651.     pfk16 = '^AY'; pfk17 = '^AZ'; pfk18 = '^A['; pfk19 = '^A\\'; pfk20 = '^A]';
  1652.     # pf keys IBM PC/XT/AT Ctrl-
  1653.     pfk21 = '^A\^';pfk22 = '^A_'; pfk23 = '^A`'; pfk24 = '^Aa'; pfk25 = '^Ab';
  1654.     pfk26 = '^Ac'; pfk27 = '^Ad'; pfk28 = '^Ae'; pfk29 = '^Af'; pfk30 = '^Ag';
  1655.     # pf keys IBM PC/XT/AT Alt-d
  1656.     pfk1 = '^Ax'; pfk2 = '^Ay'; pfk3 = '^Az'; pfk4 = '^A{'; pfk5 = '^A|';
  1657.     pfk6 = '^A}'; pfk7 = '^A~'; pfk8 = '^A^?';pfk9 = '^A^A^@';pfk10= '^A^A^A';
  1658.     pfk11='^A^A^b'; pfk12= '^A^A^c';
  1659.     # pf keys NEW IBM PC/XT/AT Keyboard
  1660.     pfk11='^A^A^e'; pfk12= '^A^A^f';
  1661.  
  1662.     # pf keys ADM3A Esc d
  1663.     pfk1 = '\E1'; pfk2 = '\E2'; pfk3 = '\E3'; pfk4 = '\E4'; pfk5 = '\E5';
  1664.     pfk6 = '\E6'; pfk7 = '\E7'; pfk8 = '\E8'; pfk9 = '\E9'; pfk10= '\E0';
  1665.     pfk11 = '\E-'; pfk12 = '\E=';
  1666.     # pf keys ADM3A Ctrl-F n n
  1667.     pfk1 = '^f01'; pfk2 = '^f02'; pfk3 = '^f03'; pfk4 = '^f04'; pfk5= '^f05';
  1668.     pfk6 = '^f06'; pfk7 = '^f07'; pfk8 = '^f08'; pfk9 = '^f09'; pfk10= '^f10';
  1669.     pfk11= '^f11'; pfk12= '^f12'; pfk13= '^f13'; pfk14= '^f14'; pfk15= '^f15';
  1670.     pfk16= '^f16'; pfk17= '^f17'; pfk18= '^f18'; pfk19= '^f19'; pfk20= '^f20';
  1671.     pfk21= '^f21'; pfk22= '^f22'; pfk23= '^f23'; pfk24= '^f24'; pfk25= '^f25';
  1672.     pfk26= '^f26'; pfk27= '^f27'; pfk28= '^f28'; pfk29= '^f29'; pfk30= '^f30';
  1673.     pfk31= '^f31'; pfk32= '^f32'; pfk33= '^f33'; pfk34= '^f34'; pfk35= '^f35';
  1674.     pfk36= '^f36';
  1675.  
  1676.     # program attention keys
  1677.     pa1 = '^p1' | '^Ah';                # Alt-F1
  1678.     pa2 = '^p2' | '^Ai';                # Alt-F2
  1679.     pa3 = '^p3' | '^Aj';                # Alt-F3
  1680.     treq = '^pr' | '^pR' | '^Al';            # Alt-F5
  1681.  
  1682.     # other keys
  1683.     cursel = '\E.';
  1684.     werase = '^\';
  1685.     ferase = '^_';
  1686.     wordtab = '^At';                    # Ctrl-Right
  1687.     wordbacktab = '^As';                # Ctrl-Left
  1688.     wordend = '^A^A^d';                    # Ctrl-PgUp
  1689.     fieldend = '^Av';                    # Ctrl-PgDn
  1690.     pfk7 = '^AI';                    # keypad PgUp
  1691.     pfk8 = '^AQ';                    # keypad PgDn
  1692.  
  1693.     # local control keys
  1694.     reset  = '^r' | '^t';
  1695.     master_reset = '^g';
  1696.     flinp  = '^x';
  1697.     reshow = '^v';
  1698.     escape = '^c';                    # to command prompt
  1699.     disc   = '^pS1D';                    # disconnect (suspend)?
  1700.     sync   = '^pS1S';                    # in sync with user?
  1701.  
  1702.     # local editing keys
  1703.     settab = '\E;';
  1704.     deltab = '\E\'';
  1705.     clrtab = '\E:' | '\E+';
  1706.     setmrg = '\E(';
  1707.     sethom = '\E!';
  1708.     coltab = '\Ei' | '\EI';
  1709.     colbak = '\Eb' | '\EB';                # on S/1 \EB is down
  1710.     indent = '\El' | '\EL';
  1711.     undent = '\Eh' | '\EH';                # on S/1 \EH is Home
  1712.  
  1713. } # end of tn3270pc
  1714. --- OK, now the diffs...
  1715. *** /tmp/get28715    Mon Feb  6 20:10:42 1989
  1716. --- telnet/Source/commands.c    Mon Feb  6 19:05:45 1989
  1717. ***************
  1718. *** 16,22 ****
  1719.    */
  1720.   
  1721.   #ifndef lint
  1722. ! static char sccsid[] = "%W% (Berkeley) %G%";
  1723.   #endif /* not lint */
  1724.   
  1725.   #include <sys/types.h>
  1726. --- 16,22 ----
  1727.    */
  1728.   
  1729.   #ifndef lint
  1730. ! static char sccsid[] = "@(#)commands.c    1.15 (Berkeley) 2/6/89";
  1731.   #endif /* not lint */
  1732.   
  1733.   #include <sys/types.h>
  1734. ***************
  1735. *** 1109,1115 ****
  1736.       }
  1737.   #endif    /* defined(MSDOS) */
  1738.       sin.sin_addr.s_addr = inet_addr(argv[1]);
  1739. !     if (sin.sin_addr.s_addr != -1) {
  1740.       sin.sin_family = AF_INET;
  1741.       (void) strcpy(hnamebuf, argv[1]);
  1742.       hostname = hnamebuf;
  1743. --- 1109,1115 ----
  1744.       }
  1745.   #endif    /* defined(MSDOS) */
  1746.       sin.sin_addr.s_addr = inet_addr(argv[1]);
  1747. !     if (sin.sin_addr.s_addr != (unsigned long) -1) {
  1748.       sin.sin_family = AF_INET;
  1749.       (void) strcpy(hnamebuf, argv[1]);
  1750.       hostname = hnamebuf;
  1751. *** /tmp/get28733    Mon Feb  6 20:11:23 1989
  1752. --- telnet/Source/utilities.c    Mon Feb  6 19:58:32 1989
  1753. ***************
  1754. *** 16,22 ****
  1755.    */
  1756.   
  1757.   #ifndef lint
  1758. ! static char sccsid[] = "%W% (Berkeley) %G%";
  1759.   #endif /* not lint */
  1760.   
  1761.   #define    TELOPTS
  1762. --- 16,22 ----
  1763.    */
  1764.   
  1765.   #ifndef lint
  1766. ! static char sccsid[] = "@(#)utilities.c    1.11 (Berkeley) 2/6/89";
  1767.   #endif /* not lint */
  1768.   
  1769.   #define    TELOPTS
  1770. ***************
  1771. *** 115,124 ****
  1772. --- 115,126 ----
  1773.       length -= BYTES_PER_LINE;
  1774.       offset += BYTES_PER_LINE;
  1775.       if (length < 0) {
  1776. +         fflush(NetTrace);
  1777.           return;
  1778.       }
  1779.       /* find next unique line */
  1780.       }
  1781. +     fflush(NetTrace);
  1782.   }
  1783.   
  1784.   
  1785. *** /tmp/get28752    Mon Feb  6 20:12:24 1989
  1786. --- telnet/Source/telnet.c    Mon Feb  6 19:58:58 1989
  1787. ***************
  1788. *** 16,22 ****
  1789.    */
  1790.   
  1791.   #ifndef lint
  1792. ! static char sccsid[] = "@(#)telnet.c    5.33 (Berkeley) 6/29/88";
  1793.   #endif /* not lint */
  1794.   
  1795.   #include <sys/types.h>
  1796. --- 16,22 ----
  1797.    */
  1798.   
  1799.   #ifndef lint
  1800. ! static char sccsid[] = "@(#)telnet.c    5.38 (Berkeley) 2/6/89";
  1801.   #endif /* not lint */
  1802.   
  1803.   #include <sys/types.h>
  1804. ***************
  1805. *** 284,289 ****
  1806. --- 284,290 ----
  1807.           return;        /* Never reply to TM will's/wont's */
  1808.   
  1809.       default:
  1810. +         hisopts[option] = 0;
  1811.           fmt = dont;
  1812.       }
  1813.       printring(&netoring, fmt, option);
  1814. *** /tmp/get28778    Mon Feb  6 20:12:47 1989
  1815. --- tn3270/ctlr/api.h    Mon Feb  6 19:07:56 1989
  1816. ***************
  1817. *** 14,20 ****
  1818.    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  1819.    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1820.    *
  1821. !  *    %W% (Berkeley) %G%
  1822.    */
  1823.   
  1824.   /*
  1825. --- 14,20 ----
  1826.    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  1827.    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1828.    *
  1829. !  *    @(#)api.h    4.2 (Berkeley) 2/6/89
  1830.    */
  1831.   
  1832.   /*
  1833. ***************
  1834. *** 319,327 ****
  1835.    * into which of the "words".
  1836.    */
  1837.   
  1838.   struct highlow {
  1839.       unsigned char
  1840. ! #if    defined(vax) || defined(ns32000)
  1841.       al,
  1842.       ah,
  1843.       bl,
  1844. --- 319,345 ----
  1845.    * into which of the "words".
  1846.    */
  1847.   
  1848. + #include <sys/param.h>        /* Get ENDIAN from machine/endian.h */
  1849. + /* Determine endian'ess (if necessary) */
  1850. + #if    !(defined(BYTE_ORDER) && defined(BIG_ENDIAN))
  1851. + #define    LITTLE_ENDIAN    1234    /* least-significant byte first (vax) */
  1852. + #define    BIG_ENDIAN    4321    /* most-significant byte first (IBM, net) */
  1853. + #if    defined(vax) || defined(ns32000)
  1854. + #define    BYTE_ORDER    LITTLE_ENDIAN
  1855. + #endif    /* defined(vax) || defined(ns32000) */ 
  1856. + #if    defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) || defined(gould)
  1857. + #define    BYTE_ORDER    BIG_ENDIAN
  1858. + #endif    /* defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) || defined(gould) */
  1859. + #endif    /* !(defined(BYTE_ORDER) && defined(BIG_ENDIAN)) */
  1860.   struct highlow {
  1861.       unsigned char
  1862. ! #if    BYTE_ORDER == LITTLE_ENDIAN
  1863.       al,
  1864.       ah,
  1865.       bl,
  1866. ***************
  1867. *** 330,337 ****
  1868.       ch,
  1869.       dl,
  1870.       dh;
  1871. ! #endif    /* defined(vax) || defined(ns32000) */ 
  1872. ! #if    defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr)
  1873.       ah,
  1874.       al,
  1875.       bh,
  1876. --- 348,355 ----
  1877.       ch,
  1878.       dl,
  1879.       dh;
  1880. ! #endif    /* BYTE_ORDER == LITTLE_ENDIAN */
  1881. ! #if    BYTE_ORDER == BIG_ENDIAN
  1882.       ah,
  1883.       al,
  1884.       bh,
  1885. ***************
  1886. *** 340,346 ****
  1887.       cl,
  1888.       dh,
  1889.       dl;
  1890. ! #endif    /* defined(sun) || defined(tahoe) || defined(ibm032) || defined(pyr) */
  1891.   };
  1892.   
  1893.   struct words {
  1894. --- 358,364 ----
  1895.       cl,
  1896.       dh,
  1897.       dl;
  1898. ! #endif    /* BYTE_ORDER == BIG_ENDIAN */
  1899.   };
  1900.   
  1901.   struct words {
  1902. *** /tmp/get28795    Mon Feb  6 20:12:56 1989
  1903. --- tn3270/ctlr/screen.h    Mon Feb  6 19:06:44 1989
  1904. ***************
  1905. *** 14,20 ****
  1906.    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  1907.    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1908.    *
  1909. !  *    %W% (Berkeley) %G%
  1910.    */
  1911.   
  1912.   #define    INCLUDED_SCREEN
  1913. --- 14,20 ----
  1914.    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  1915.    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  1916.    *
  1917. !  *    @(#)screen.h    4.2 (Berkeley) 2/6/89
  1918.    */
  1919.   
  1920.   #define    INCLUDED_SCREEN
  1921. ***************
  1922. *** 109,118 ****
  1923.           (((c)&ATTR_DSPD_MASK) == ATTR_DSPD_HIGH)
  1924.   #define    IsHighlighted(p) \
  1925.           (IsHighlightedAttr(FieldAttributes(p)) && !IsStartField(p))
  1926. - #define MAX(x,y)    ((x)<(y)? (y):(x))
  1927. - #define MIN(x,y)    ((x)<(y)? x:(y))
  1928.   
  1929.   typedef unsigned char ScreenImage;
  1930.   
  1931. --- 109,114 ----
  1932. *** /tmp/get28813    Mon Feb  6 20:13:05 1989
  1933. --- tn3270/ctlr/outbound.c    Mon Feb  6 16:25:45 1989
  1934. ***************
  1935. *** 16,22 ****
  1936.    */
  1937.   
  1938.   #ifndef lint
  1939. ! static char sccsid[] = "%W% (Berkeley) %G%";
  1940.   #endif /* not lint */
  1941.   
  1942.   #include <stdio.h>
  1943. --- 16,22 ----
  1944.    */
  1945.   
  1946.   #ifndef lint
  1947. ! static char sccsid[] = "@(#)outbound.c    4.2 (Berkeley) 2/6/89";
  1948.   #endif /* not lint */
  1949.   
  1950.   #include <stdio.h>
  1951. ***************
  1952. *** 392,397 ****
  1953. --- 392,411 ----
  1954.           case ORDER_RA:
  1955.           Ensure(3);
  1956.           i = Addr3270(buffer[0], buffer[1]);
  1957. +         if ((i < 0) || (i > HighestScreen())) {
  1958. +             char s_buffer[200];
  1959. +             sprintf(s_buffer, "tn3270:  %s%d.\n\t%s%d%s%d%s\n",
  1960. +             "Invalid 3270 order 'Repeat to Address' to address ",
  1961. +             i,
  1962. +             "(Screen currently set to ",
  1963. +             NumberLines,
  1964. +             " by ",
  1965. +             NumberColumns,
  1966. +             ".)");
  1967. +             ExitString(s_buffer, 1);
  1968. +             /*NOTREACHED*/
  1969. +         }
  1970.           c = buffer[2];
  1971.           if (c == ORDER_GE) {
  1972.               Ensure(4);
  1973. ***************
  1974. *** 416,421 ****
  1975. --- 430,449 ----
  1976.           i = WhereAttrByte(BufferAddress);
  1977.           c = FieldAttributes(i);
  1978.           i = Addr3270(buffer[0], buffer[1]);
  1979. +         if ((i < 0) || (i > HighestScreen())) {
  1980. +             char s_buffer[200];
  1981. +             sprintf(s_buffer, "tn3270:  %s%d.\n\t%s%d%s%d%s\n",
  1982. +             "Invalid 3270 order 'Erase Unprotected to Address' to address ",
  1983. +             i,
  1984. +             "(Screen currently set to ",
  1985. +             NumberLines,
  1986. +             " by ",
  1987. +             NumberColumns,
  1988. +             ".)");
  1989. +             ExitString(s_buffer, 1);
  1990. +             /*NOTREACHED*/
  1991. +         }
  1992.           do {
  1993.               if (IsStartField(BufferAddress)) {
  1994.               c = FieldAttributes(BufferAddress);
  1995.